package almata.dai.jhuguet;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * Classe sala amb els atributs de codi, nom, descripcio, metresQuadrats, nom_centre
 * 
 * @author Joan Ramon
 */

public class Sala {
	
	private String codi;
	private String nom;
	private String descripcio;
	private int metresQuadrats;
	private String nom_centre;
	
	/**
	 * @param codi
	 * @param nom
	 * @param descripcio
	 * @param metresQuadrats
	 * @param nom_centre
	 */
	
	public Sala(){
		
	}
	
	public Sala(String codi, String nom,String descripcio, int metresQuadrats, String nom_centre) {
		super();
		this.codi = codi;
		this.nom = nom;
		this.descripcio = descripcio;
		this.metresQuadrats = metresQuadrats;
		this.nom_centre = nom_centre;
	}
	
	public Sala(String nom,String descripcio, int metresQuadrats, String nom_centre) {
		super();
		this.nom = nom;
		this.descripcio = descripcio;
		this.metresQuadrats = metresQuadrats;
		this.nom_centre = nom_centre;
	}
	
	public String getCodi() {
		return codi;
	}
	public void setCodi(String codi) {
		this.codi = codi;
	}
	public String getNom() {
		return nom;
	}
	public void setNom(String nom) {
		this.nom = nom;
	}
	public String getDescripcio() {
		return descripcio;
	}
	public void setDescripcio(String descripcio) {
		this.descripcio = descripcio;
	}
	public int getMetresQuadrats() {
		return metresQuadrats;
	}
	public void setMetresQuadrats(int metresQuadrats) {
		this.metresQuadrats = metresQuadrats;
	}
	public String getNom_centre() {
		return nom_centre;
	}
	public void setNom_centre(String nom_centre) {
		this.nom_centre = nom_centre;
	}
	
	/**
	 * Aquesta funcio ens permet crear o actualitza els diferents sales
	 */
	
	public void gravarSala(){
		
		PreparedStatement pstmt = null;
		Statement stmt = null;
		ResultSet rs = null;
		Connection conn = null;
		
		ConnectorBD connector = new ConnectorBD();
		GestorBD gestor = new GestorBD();
		
		try{
			conn = connector.getConnection();
			if(!gestor.existeixBD("sales",this.getCodi())){ // si no existeix a la BD l'inserim.
				pstmt = conn.prepareStatement("INSERT INTO sales(nom,descripcio,metresQuadrats,nom_centre) VALUES (?,?,?,?)");
				
				pstmt.setString(1, this.getNom());
				pstmt.setString(2, this.getDescripcio());
				pstmt.setInt(3, this.getMetresQuadrats());
				pstmt.setString(4, this.getNom_centre());

				pstmt.executeUpdate();	
			}
			else
			{ // si ja existeix farem un update.
				pstmt = conn.prepareStatement("UPDATE sales SET nom=?, descripcio=?, metresQuadrats=?, nom_centre=? WHERE codi = ?");
				
				pstmt.setString(1, this.getNom());
				pstmt.setString(2, this.getDescripcio());
				pstmt.setInt(3, this.getMetresQuadrats());
				pstmt.setString(4, this.getNom_centre());
				pstmt.setString(5, this.getCodi());
				pstmt.executeUpdate();	
			
			}

		}catch(Exception e){
			System.err.println("ha hagut un error en la base de dades");
			e.printStackTrace();
		}finally{
			// release the connection
			try{
				if(pstmt!=null)
					pstmt.close();
			}catch(Exception e1){}
			
			try{
				if(conn!=null) conn.close();
			}catch(Exception e){}
		}
		
	}
	
	/**
	 * Aquesta funcio ens permet eleminar les sales seleccionades
	 * 
	 * @throws Exception
	 */
	
	public void eliminarSala() throws Exception {
		
		PreparedStatement pstmt = null;
		Statement stmt = null;
		ResultSet rs = null;
		Connection conn = null;
		
		ConnectorBD connector = new ConnectorBD();
		
		conn = connector.getConnection();

		pstmt = conn.prepareStatement("DELETE FROM sales WHERE codi='"+ this.getCodi() + "'");
		pstmt.executeUpdate();

	}
}
